package com.ahtcm.tcmlearning.service;

import com.ahtcm.tcmlearning.dataObject.brushProblem.RateOfLearning;
import com.ahtcm.tcmlearning.dataObject.generateQuestion.GenerateQuestion;
import com.ahtcm.tcmlearning.model.Medicine;
import com.ahtcm.tcmlearning.model.Prescription;

import java.util.List;

public interface GenerateProblemService {
    /**
     * @description 获得记忆斩某模块的学习进度
     * @param functionType
     * @param userId
     * @return
     */
    RateOfLearning getRateOfLearning(Integer functionType, Integer userId);

    /**
     * @description 记忆斩中药模块下一个需要学习展示中药
     * @param currentTypeId
     * @return
     */
    Medicine getNextTypeDetailsForMedicine(Integer currentTypeId);
    /**
     * @description 记忆斩方剂模块下一个需要学习展示方剂
     * @param currentTypeId
     * @return
     */
    Prescription getNextTypeDetailsForPrescription(Integer currentTypeId);

    /**
     * @description 用户点击跳过做题，向记录表中添加记录
     * @param userID
     * @param typeId 要跳过的种类id
     * @param dicId  父类id
     * @param functionType
     */
    void skipOverTopic(Integer userID,Integer typeId, Integer dicId, Integer functionType);

    /**
     * @description 生成中药题目
     * @param typeId typeId 要产生题目的中药处于表中的id
     * @param dicId 中药所处的种类id
     * @return
     */
    List<GenerateQuestion> generateMedicineQuestion(Integer typeId, Integer dicId);

    /**
     * @description 生成方剂题目
     * @param typeId typeId 要产生题目的方剂处于表中的id
     * @param dicId 方剂所处的种类id
     * @return
     */
    List<GenerateQuestion> generatePrescriptionQuestion(Integer typeId, Integer dicId);
}